package com.jy.wms.dao;

import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.WmsSetBox;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
   * @ClassName: WmsSetBoxMapper.java
   * @Description: TODO(这里用一句话描述这个类的作用)
   * @Author Jane
   * @Date Fri Jan 26 10:47:42 CST 2018
   */
   public interface WmsSetBoxMapper extends BaseDao<WmsSetBox> {

    /**
     * 根据集拼箱ID获取对应的箱子的ids
     *
     * @param jpxid 集拼箱ID
     * @return User
     */
    public List<String> getWmsBoxIdsByJpxid(@Param("jpxid") String jpxid);

    /**
     * 根据箱编号查看 总数量及当前第几箱
     * @return
     */
       public Map<String,Object> getBoxNumber(@Param("xbh") String xbh, @Param("ckid") String ckid);

    /**
     * 根据集拼箱的箱编号查看数量
     * @param xbh
     * @return
     */
    public Integer getCountByXbh(@Param("xbh") String xbh);

    /**
     * 根据集拼箱ID 查询所有的发运单号
     * @param id
     * @return
     */
    public String getFydh(@Param("id") String id);


    /**
     * 根据装箱IDS列表获取 已经加入集拼箱的箱子信息
     * @param list
     * @return
     */
       public List<String> getListByBox(@Param("list") List<String> list);
    /**
     * 修改 周转箱ID
     * @param xxid
     * @param id
     * @return
     */
    public Integer updateJpxid(@Param("xxid") String xxid, @Param("id") String id);

    /**
     * 获取打印集拼箱 列表
     * @param id
     * @return
     */
    public List<Map<String,Object>> getPrintList(@Param("id") String id);

    /**
     * 获取打印集拼箱 列表
     * @param id
     * @return
     */
    public List<Map<String,Object>> getPrintListZx(@Param("id") String id);

    /**
     * 根据箱编号获取  id 箱型 箱重量
     * @param xbh
     * @return
     */
    public Map<String,Object> getPrintByXbh(@Param("xbh") String xbh, @Param("ckid") String ckid);

    /**
     * 根据id获取 箱型 箱重量
     * @param id
     * @return
     */
       public Map<String,Object> getPrint(@Param("id") String id);

    /**
     * 修改wms_box表内jpxid
     * @param map
     * @return
     */
       public Integer updateWmsBoxJpxid(@Param("map") Map<String, Object> map);

    /**
     * 查询有效的箱型
     * @return
     */
    public List<Map<String,Object>> getXx(@Param("hzid") String hzid, @Param("ckid") String ckid);

    /**
     * 根据 箱编号 获取箱明细信息
     * @param map
     * @return
     */
       public List<Map<String,Object>> getXmx(@Param("map") Map<String, Object> map);

   /**
    * 插入一条记录
    * @param entity 实体对象
    * @return int
    */
    public Integer baseInsert(@Param("WmsSetBox") WmsSetBox entity);

   /**
    * 插入一条记录（匹配有值的字段）
    * @param entity 实体对象
    * @return int
    */
   public Integer baseInsertSelective(@Param("WmsSetBox") WmsSetBox entity);

   /**
    * 删除（根据主键ID删除）
    * @param id 主键
    * @return int
    */
   public Integer baseDeleteByPrimaryKey(@Param("id") String id);

   /**
    * 删除（根据ID 批量删除）
    * @param idList 主键ID列表
    * @return int
    */
    public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList);


    /**
    * 分页查询
    * @param entity 实体
    * @return List<WmsSetBox>
    */
    public List<WmsSetBox> baseSelectPage(@Param("WmsSetBox") WmsSetBox entity);

    /**
    * 查询（根据主键ID查询）
    * @param id 主键ID
    * @return User
    */
    public WmsSetBox baseSelectByPrimaryKey(@Param("id") String id);

    /**
     * 查询（根据主键箱编号查询）
     * @param xbh 箱编号
     * @return User
     */
    public WmsSetBox baseSelectByPrimaryXbh(@Param("xbh") String xbh);

   /**
    * 查询（根据ID 批量查询）
    * @param idList 主键ID列表
    * @return list
    */
    public Integer baseSelectBathPrimaryKeys(@Param("list") List<WmsSetBox> idList);

    /**
     *  根据集拼箱修改装箱表快递信息
     * @param map
     * @return list
     */
    public Integer updateBoxMessageByJpxid(@Param("map") Map<String, Object> map);

    /**
     * 根据集拼箱ID获取对应的发运订单列表
     * @param jpxid
     * @return
     */
    public Set<String> getFyddIdsByJpxId(@Param("jpxid") String jpxid);

    /**
     * 根据箱编号获取对应的发运订单列表
     * @param xbh
     * @return
     */
    public Set<String> getFyddIdsByXbh(@Param("xbh") String xbh);
    /**
     *  根据装箱 修改装箱表快递信息
     * @param map
     * @return list
     */
    public Integer updateBoxMessageByZxid(@Param("map") Map<String, Object> map);


   /**
    *修改 （匹配有值的字段）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKeySelective(@Param("WmsSetBox") WmsSetBox entity);

   /**
    *修改（根据主键ID修改）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKey(@Param("WmsSetBox") WmsSetBox entity);
}
